The process of software release (e.g., by an organization) typically includes the steps of compiling the source code into executable code, bundling the source code, executable code, and associated metadata into an archive of files, proscribing a set of rules for accepting and upgrading the released software, and enforcing these rules on the end users of the released software.